A processing system, such as those employed in computers, smartphones, and the like, includes at least one processor to execute sets of instructions (e.g., a computer program) to perform specified tasks and further includes one or more memory modules to store the data that is to be manipulated by the processor. Typically, the sets of instructions include one or more memory transactions (sometimes also referred to as memory requests), wherein each memory transaction stores or retrieves data at the memory modules. The efficiency with which the processing system can execute the memory transactions thus has a significant impact on the efficiency of the processing system as a whole. Accordingly, to facilitate execution of the memory transactions, the processing system can employ a memory controller that manages memory transaction execution. Conventionally, the memory controller includes a buffer that stores memory transactions that are awaiting completion at the memory modules. However, as the technologies of memory modules and processing systems continue to evolve, conventional memory buffer configurations are unlikely to support efficient processing of memory transactions. For example, conventional memory buffer configurations are likely to cause severe bottlenecks in processing systems employing memory modules using non-volatile memory and in processing systems employing Cache Coherency Interconnect for Accelerator (CCIX) or Gen-Z interconnects.